package fr.noe.amicaleloisirs.concours.business;

import java.util.ArrayList;
import java.util.List;

import fr.noe.amicaleloisirs.concours.utils.Constants;
import fr.noe.amicaleloisirs.concours.utils.Logger;

public class Team {

	private int teamId;
	private Player p1;
	private Player p2;
	protected String serieResultats = "";
	protected int nbVictoire = 0;
	protected int nbDefaite = 0;
	protected int totalPour = 0;
	protected int totalContre = 0;
	protected boolean alreadyExempt = false;
	protected List<Integer> dejaRencontres = new ArrayList<Integer>();


	public Team(Player p1, Player p2, int teamId) {
		this.p1 = p1;
		this.p2 = p2;
		this.teamId = teamId;
	}
	
	private static void log(String text) {
		Logger.get().logWithClass("Team", text);
	}

	public int getTeamId() {
		return teamId;
	}

	public Player getPlayer1() {
		return p1;
	}

	public Player getPlayer2() {
		return p2;
	}

	public String getSerie() {
		return serieResultats;
	}
	
	public int getTotalPour() {
		return totalPour;
	}

	public int getTotalContre() {
		return totalContre;
	}

	public boolean hasAlreadyBeenExempt() {
		return alreadyExempt;
	}

	public void setAlreadyExempt(boolean alreadyExempt) {
		this.alreadyExempt = alreadyExempt;
	}

	public boolean addEquipeRencontree(int id) {
		return dejaRencontres.add(id);
	}
	
	public boolean isDejaRencontree(int id) {
		return dejaRencontres.contains(id);
	}
	
	public List<Integer> getDejaRencontres() {
		return dejaRencontres;
	}

	public void setResultat(int pour, int contre) {
		if (pour > contre) {
			if ((pour == Constants.NB_POINT_VICTOIRE_DEFAUT) && (contre == Constants.NB_POINT_DEFAITE_DEFAUT) && 
					(alreadyExempt == true) && !serieResultats.contains(Constants.EXEMPT))
				serieResultats = serieResultats + Constants.EXEMPT;
			else
				serieResultats = serieResultats + Constants.VICTOIRE;
			nbVictoire = nbVictoire + 1;
		}
		else {
			serieResultats = serieResultats + Constants.DEFAITE;
			nbDefaite = nbDefaite + 1;
		}
		totalPour = totalPour + pour;
		totalContre = totalContre + contre;
	}

	public int getNombreVictoires() {
		return nbVictoire;
	}

	public int getNombreDefaites() {
		return nbDefaite;
	}
}
